Que se passe-t-il ?
Présentation de l'interface "langage VPL" (10 min)
Pensez à faire l'analogie entre la fiche du si... alors et l'interface VPL.
Par exemple : dire "Si Thymio détecte un objet devant lui" (et faire la démo sur le logiciel en même temps que l'on explique) "Alors il avance" ( et mettre la fonction Avancer sur le logiciel).
L'important est de bien expliquer que la colonne de gauche est le bloc "capteurs" (le si), les 2 carrés du milieu est le "alors" et la colonne de droite est le bloc des actions. C'est le mécanisme de traduction de la pensée (algorithme) à l'écriture d'un programme (en passant d'un langage à un autre).
L'idée est de bien faire comprendre que la machine n'obéit qu'à la pensée humaine.
- Le téléchargement du logiciel de programmation visuelle (Thymio VPL) s'effectue depuis la page https://www.thymio.org/fr:start en cliquant sur l'icône correspondant à votre système d'exploitation.
- Afin que l'enseignant puisse prendre connaissance de l'interface du logiciel, le document « séance 8 présentation interface VPL » est à utiliser.
- Pour comprendre la logique de programmation visuelle dans le logiciel VPL, il est préférable de regarder la vidéo suivante :
https://www.youtube.com/watch?v=dA-BW38kl6E
- Pour faire le point sur le lexique spécifique à la programmation :
Algorithme : Un algorithme est un ensemble organisé d'actions destiné à faire quelque chose, en particulier résoudre un problème.
Instruction : ordre élémentaire donné à une machine (un robot ou un ordinateur, par exemple), correspondant à une « étape » de l'algorithme.
Programme : constitué d'une ou plusieurs instructions, expression d'un algorithme dans un langage de programmation.
Programmation séquentielle : qualifie un programme dont les instructions s'exécutent les unes à la suite des autres, dans un ordre défini à l'avance (par exemple : programme ordonnant à un personnage de se déplacer sur un quadrillage en suivant un itinéraire connu).
Programmation événementielle : qualifie un programme dont les instructions ne s'exécutent que lorsqu'un événement particulier se produit (par exemple : programme ordonnant à un robot de tourner à gauche s'il détecte un obstacle à droite).
Complétez la fiche de petits programmes. N'hésitez pas à tester sur votre Thymio (10 min)
Découvrir le code couleur (10 min)
Rappel sur la signification des capteurs :
Pour ces capteurs, le gris signifie que le capteur n'est pas pris en compte; blanc entouré de rouge signifie que l'objet est proche; noir signifie que l'objet est détecté mais pas proche du robot.
Rappel sur la signification des touches :
Pour chaque bouton, gris signifie ignorer le bouton, rouge indique que le bouton doit être touché.
Pour être plus précis : Lorsqu'un capteur de proximité est programmé en noir, on dit habituellement qu'une action lui sera associée s'il ne détecte rien. En réalité, le capteur est assez sensible et peut détecter des objets éloignés.
Le programme applique des seuils de détection qui sont personnalisables dans le mode expert de VPL.
Dans le mode basique, lorsqu'il est programmé en noir, une action sera associée au capteur s'il ne détecte rien ou si ce qu'il détecte est au-delà du seuil. De la même façon, lorsque le capteur est programmé en rouge, une action peut lui être associée si ce qu'il détecte est en deçà du seuil.
Quel est le programme correspondant à la vidéo ?
Exemple :
1- Que va faire le robot avec ce programme ?
2- Que va faire le robot avec ce programme ?
Testez-vous avec le premier programme (15 min)
Question⚓
Programmez votre Thymio pour que :
Si les 5 capteurs de devant ne détectent rien alors Thymio avance
Si le capteur central de devant détecte un obstacle alors Thymio recule
Si un obstacle est détecté à gauche alors Thymio tourne à droite
Si 'un obstacle est détecté à droite alors Thymio tourne à gauche.
Si vous programme le comportement suivant :
• Le robot avance s'il ne détecte rien devant lui.
• Le robot s'arrête s'il détecte un obstacle devant lui et ne repart que si on enlève l'obstacle.
• Le robot évite un obstacle situé sur un de ses côtés tout en continuant à avancer

Au début, le robot avance, c'est parfait.
S'il détecte un obstacle sur un de ses côtés, le robot tourne.
Mais une fois qu'a eu lieu une détection à droite ou à gauche, il ne repart plus droit ! Pourtant il n'y a pas d'obstacle devant.
Certes, mais la situation surveillée par le bloc capteur n'a pas changé puisque vous ignorez les capteurs sur les côtés (qui sont paramétrés en gris) dans cette première instruction : il n'y a donc pas de nouvel événement détecté correspondant à cette première instruction.
Pour que le robot reparte droit après avoir évité un obstacle, il fallait donc bien coder ce programme :

Avec ce programme, lorsqu'un capteur (central ou sur les côtés) détecte quelque chose puis plus rien (passe de l'état “détecte” à “ne détecte pas”), l'évènement correspondant à la première instruction est à nouveau déclenché, donc la première instruction est exécutée et le robot avance droit.
En résumé :
Pour programmer le comportement de votre robot dans le langage Thymio VPL, vous pouvez procéder par étape et appliquer la méthode suivante :
• Transformer le comportement désiré en logique événementielle avec une ou plusieurs instructions conditionnelles.
• Pour chaque instruction conditionnelle, identifier le bloc capteur concerné ainsi que le paramétrage à effectuer.
• Pour chaque instruction conditionnelle, identifier le ou les blocs actions à utiliser, ainsi que le paramétrage à effectuer.
• Créer au fur et à mesure chaque nouvelle instruction dans VPL, en testant à chaque fois pour vérifier le comportement obtenu et modifier l'instruction si nécessaire !
Attention à la petite subtilité de la programmation du Thymio : une instruction est exécutée lorsque l’événement est déclenché, et ce, jusqu'à ce qu'un autre événement vienne contredire l'instruction.
Solution⚓
Programme à télécharger programme1
Remarques pour éviter les difficultés :
1. « et » : si plusieurs capteurs sont rouges sur le même bloc, cela signifie qu'ils devront tous détecter quelque chose en même temps pour déclencher une action.
« ou » : Si l'on souhaite que les capteurs soient pris en compte de façon indépendante, alors il faut créer une instruction (c'est à dire une ligne de programme) par capteur.
2. Capteurs gris : si tous les capteurs sont gris sur le même bloc, cela peut parasiter les autres instructions. Les élèves choisissent souvent ce bloc à la place de celui avec un ou plusieurs capteurs noirs.
3. Ordre et contrordre : lorsqu'on associe une action à un capteur, il est souvent nécessaire d'associer une autre action, sur le même capteur, en changeant d'état, ceci afin que le robot ne reste pas bloqué sur l'action initiale.
4. Programmation des capteurs de sol : si ces capteurs sont rouges, alors l'action associée est effectuée lorsqu'ils détectent une surface suffisamment claire ou réfléchissante. S'ils sont noirs, alors l'action associée est effectuée quand ils détectent une surface suffisamment sombre ou mate, ou lorsqu'ils ne détectent rien (au-dessus du vide).
5. Les capteurs de son et de chocs fonctionnent plus difficilement. Dans une classe, le capteur de son est perturbé par les bruits de fond. Le capteur de choc est assez sensible : lorsqu'il est associé à une action, une forte variation de la vitesse des moteurs peut parasiter la bonne exécution du programme.
6. Vitesse de déplacement : lorsque le robot se déplace et doit réagir à un événement (rencontre d'un obstacle, virage du chemin suivi, bord de table...), il est préférable de ne pas systématiquement positionner la vitesse des moteurs au maximum. Si le robot ne se comporte pas comme prévu, commencer par réduire la vitesse de déplacement du robot avant de modifier d'autres paramètres.
7. Calibrage : parfois le robot dérive, tourne légèrement d'un côté alors qu'il devrait aller tout droit. Il faut alors le recalibrer. La procédure est indiquée sur le site Thymio.org : https://www.thymio.org/fr:thymiomotorcalibration
Un second programme à tester
Question⚓
Après avoir appuyé sur le bouton central, le robot fonce vers un mur.
Si le robot détecte le mur alors il doit jouer un petit morceau de musique, s'allumer en rouge au dessus, en vert en dessous et s'arrêter devant l'obstacle (le mur).
Solution⚓
Télécharger le programme programme 2
Pour aller plus loin⚓
Activité optionnelle si R2T2 ou plus de temps.